package com.example.ymm.modules1.mapper.ms;

import com.example.ymm.base.CoreMapper;
import com.example.ymm.model.YmPageDto;
import com.example.ymm.modules1.entity.ms.*;
import com.example.ymm.modules1.query.ms.*;
import com.example.ymm.modules1.service.dto.ms.MsWarehouseDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

@Repository
@Mapper
public interface VckStockMapper extends CoreMapper<VckStock> {

    /**
     * 库位列表
     * @param criteria
     * @return
     */
    List<MsWarehouseDto> warehouseList(MsWarehouseDtoQueryCriteria criteria);


    /**
     * 库存列表
     * 有关联
     */
    List<VckStock> stockList(VckStockQueryCriteria criteria);


    /**
     * 库存列表
     * 无关联
     */
    List<VckStock> stockListNoRef(VckStockQueryCriteria criteria);


    /**
     * 销售发货出库列表
     */
    List<CkOutbillList> outbillList(CkOutbillQueryCriteria criteria);


    List<CkOutbillList> outbillTotal(CkOutbillQueryCriteria criteria);


    /**
     * 销售出库待审批
     * @param criteria
     * @return
     */
    List<CkOutbillList> ywPostageWaitList(CkOutbillQueryCriteria criteria);


    /**
     * 定时器查询
     * pmc
     * @param pmcQueryCriteria
     * @return
     */
    List<ViewBaogonCailiao> pmcList(PmcQueryCriteria pmcQueryCriteria);


    /**
     * 报工报检明细
     * @param pmcQueryCriteria
     * @return
     */
    List<ViewBaogonItem> pmcItemList(PmcQueryCriteria pmcQueryCriteria);

    /**
     * 统计报工数量
     * @param criteria
     * @return
     */
    BigDecimal sumBaoGonNum(BaoGonQueryCriteria criteria);


    /**
     * 查询bom 清单
     */
   List<BomMaterial>  orderBomList(PmcQueryCriteria pmcQueryCriteria);


    /**
     * 列表查询
     * @param pmcQueryCriteria
     * @return
     */
   List<ViewBaogonCailiao> pmcQueryList(PmcQueryCriteria pmcQueryCriteria);


    /**
     * 列表报工数量查询
     * @param pmcQueryCriteria
     * @return
     */
   List<ViewBaogonCailiao> baogongQueryList(PmcQueryCriteria pmcQueryCriteria);


    /**
     *
     * @param pmcQueryCriteria
     * @return
     */
   List<PmcWenJianGuiDto> pmcWenjianList(PmcQueryCriteria pmcQueryCriteria);

}